function ajax(obj){
    var default1={
        url:'',//请求地址
        type:'get',//请求方式
        data:'',//请求参数
        async:'true',//是否异步
        dataType:'string',//返回数据的数据格式
        success:function(){},//成功的回调函数
        error:function(){}//失败的回调函数
    }
    //使用传入的参数覆盖默认参数
    for(var attr in obj){
        default1[attr]=obj[attr]
    }
    
    //判断地址是否有数据
    if(!default1.url){
        throw new Error("url地址不能为空")
    }
    //创建ajax对象
    var xhr=new XMLHttpRequest()
    //data是否有参数
    if(default1.data){
        //判断请求方式
        if(default1.type.toUpperCase()=="GET"){
            //配置请求信息
            xhr.open('get',default1.url+'?'+default1.data)
            //发送请求
            xhr.send()
        }else{
            //配置请求信息
            xhr.open('post',default1.url)
            //设置请求头
            xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")
            //发送请求
            xhr.send(default1.data)
        }
    }else{
        //配置请求信息
        xhr.open(default1.type,default1.url)
        //发送请求
        xhr.send()
    }
    //监听ajax状态
    xhr.onreadystatechange=function(){
        //判断ajax状态是否等于4
        if(xhr.readyState==4){
            //判断http状态是否成功
            if(xhr.status==200){
                //调用成功的回调函数
                default1.success(xhr.responseText)
            }else{
                //调用失败的回调函数
                default1.error(xhr.responseText)
            }
        }
    }
}

function PromiseAjax(obj){
    return new Promise(function(resolve,reject){
        var default1={
            url:'',//请求地址
            type:'get',//请求方式
            data:'',//请求参数
            async:'true',//是否异步
            dataType:'string',//返回数据的数据格式
            // success:function(){},//成功的回调函数
            // error:function(){}//失败的回调函数
        }
        //使用传入的参数覆盖默认参数
        for(var attr in obj){
            default1[attr]=obj[attr]
        }
        
        //判断地址是否有数据
        if(!default1.url){
            throw new Error("url地址不能为空")
        }
        //创建ajax对象
        var xhr=new XMLHttpRequest()
        //data是否有参数
        if(default1.data){
            //判断请求方式
            if(default1.type.toUpperCase()=="GET"){
                //配置请求信息
                xhr.open('get',default1.url+'?'+default1.data)
                //发送请求
                xhr.send()
            }else{
                //配置请求信息
                xhr.open('post',default1.url)
                //设置请求头
                xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")
                //发送请求
                xhr.send(default1.data)
            }
        }else{
            //配置请求信息
            xhr.open(default1.type,default1.url)
            //发送请求
            xhr.send()
        }
        //监听ajax状态
        xhr.onreadystatechange=function(){
            //判断ajax状态是否等于4
            if(xhr.readyState==4){
                //判断http状态是否成功
                if(xhr.status==200){
                    //调用成功的回调函数
                   /*  default1.success(xhr.responseText) */
                   resolve(xhr.responseText)
                }else{
                    //调用失败的回调函数
                    // default1.error(xhr.responseText)
                    reject(xhr.status)
                }
            }
        }
    })
}